#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL;
namespace Cephei.QL.Experimental.Commodities
{
     
    [Guid ("935BC3EE-E44D-46e2-AF35-8F541A2256ED"),ComVisible(true)]
	public interface ICommodityCashFlow : Cephei.QL.ICashFlow
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 Double Amount {get;}
        
		 Cephei.QL.ICurrency Currency {get;}
        
		 DateTime Date {get;}
        
		 Cephei.QL.IMoney DiscountedAmount {get;}
        
		 Cephei.QL.IMoney DiscountedPaymentAmount {get;}
        
		 Double DiscountFactor {get;}
        
		 Boolean Finalized {get;}
        
		 Double PaymentDiscountFactor {get;}
        
		 Cephei.QL.IMoney UndiscountedAmount {get;}
        
		 Cephei.QL.IMoney UndiscountedPaymentAmount {get;}
    }

    // <summary> 
	//  Factory
	// </summary>
   	[ComVisible(true)]
    public interface ICommodityCashFlow_Factory // : Collection_Factory<ICommodityCashFlow, ICell<ICommodityCashFlow>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    ICommodityCashFlow Create (DateTime date, Cephei.QL.IMoney discountedAmount, Cephei.QL.IMoney undiscountedAmount, Cephei.QL.IMoney discountedPaymentAmount, Cephei.QL.IMoney undiscountedPaymentAmount, Double discountFactor, Double paymentDiscountFactor, Boolean finalized);
    }
}

